feat: Sync macOS port with upstream god-team/main#2
Merged
Conversation
- Add two-tab interface: Steam (recommended) and Local Archive - Implement SteamCMDManager with auto-install from Valve CDN - Handle Steam Guard 2FA prompts via in-app input - Strip quarantine attrs (xattr -cr) on downloaded steamcmd binary - Add native About window with author credits and project links - Add menu bar About command - Update distribution script for DMG generation (hdiutil) - Include Applications symlink for drag-to-install UX
…tion to SteamCMD manager while modularizing DMG build scripts.
…initialize patch repository structure
…e Emitters under __APPLE__
… containing both Base and Zero Hour assets
…ion, and update Telegram links
…up legacy preprocessor directives - Merged fragmented hardware capabilities from MetalInterface8 into the authoritative MetalDevice8::FillDeviceCaps, creating a single robust source of truth that aligns with standard DX8 architecture. - Explicitly assigned PixelShaderVersion and VertexShaderVersion to 0. This bypasses the engine's attempt to use PS1.4/terrain shaders (which currently lack full shading fidelity in MSL) and forces it to use the stable, visually perfect TSS fixed-function fallback. - Dropped redundant #ifdef __APPLE__ macros across all Platform/MacOS source arrays, as these files are platform-native by definition.
…s to query actual hardware caps
On POSIX, %s in swprintf expects char* while MSVC expects wchar_t*. This caused all UnicodeString::format calls with %s and wide string arguments to silently produce truncated output (only first byte visible due to null bytes in 4-byte wchar_t encoding on macOS). Additionally, non-ASCII Unicode characters in format strings (U+25CF, U+25CC) caused swprintf to fail entirely under the default C locale. Changes: - Set LC_CTYPE to UTF-8 in MacOSMain.mm entry point - Add format string converter in UnicodeString::format_va that rewrites MSVC-style %s to POSIX %ls under __APPLE__, fixing all 22+ callsites - Guard from_utf8 call in WOLBuddyOverlay with __APPLE__ to use translate() instead, preventing std::range_error on non-UTF-8 nicks
…e multi-language HTML instructions
…r GENERALS_ONLINE_HIGH_FPS_RENDER
…x/pause-particle-effects fix(gameclient): Fix particle effects not freezing on game pause under GENERALS_ONLINE_HIGH_FPS_RENDER
…to correctly handle macOS Retina scaling
…ation-based audio slot safety checks
…Cache filesystem integration Refactored audio stream caching to use engine-native AsciiString and TheFileSystem, avoiding manual /tmp/ path construction. Implemented 'ensure_engine_running' check in AVAudioBridge to gracefully restart AVAudioEngine if it pauses during mass node stopping (e.g. on mission restart).
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Merges upstream
god-team/maininto the macOS port branch.Changes from upstream
freezeTimeguard in high-FPS render loop)utc_clockmigration for frame pacing (Windows only, macOS usessystem_clockvia#ifdef __APPLE__due to Apple libc++ lacking C++20 chrono extensions)Conflict resolution
Single conflict in
GameClient.cpp— resolved with platform-conditional clock selection:Testing